/*
Problem Description
需要的时候，就把一个个大小差一圈的筐叠上去，使得从上往下看时，边筐花色交错。这个工作现在要让计算机来完成，得看你的了。
Input
输入是一个个的三元组，分别是，外筐尺寸n（n为满足0<n<80的奇整数），中心花色字符，外筐花色字符，后二者都为ASCII可见字符；
Output
输出叠在一起的筐图案，中心花色与外筐花色字符从内层起交错相叠，多筐相叠时，最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。
Sample Input
11 B A
5 @ W
Sample Output
 AAAAAAAAA 
ABBBBBBBBBA
ABAAAAAAABA
ABABBBBBABA
ABABAAABABA
ABABABABABA
ABABAAABABA
ABABBBBBABA
ABAAAAAAABA
ABBBBBBBBBA
 AAAAAAAAA 

 @@@ 
@WWW@
@W@W@
@WWW@
 @@@ 
 */
package com.yuan.algorithms.training20150721;

import java.util.Scanner;

public class 叠筐 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int q = 0;
		while(sc.hasNext()) {
			int n = sc.nextInt();
			final char a = sc.next().charAt(0);
			final char b = sc.next().charAt(0);
			if (q==0) {
				q = 1;
			}else {
				System.out.println();
			}
			if (n==1) {
				System.out.println(a);
				continue;
			}
			char outer, inner;
			if ((n-1)/2%2==1) {
				outer = b;
				inner = a;
			} else {
				outer = a;
				inner = b;
			}
			char[][] arr = new char[n/2+1][n];
			boolean m = false;
			for (int i = 0; i < n/2+1; i++) {
				for (int j = 0; j < n; j++) {
					if ((i==0 && (j==0 || j==n-1)) || (i==n-1 && (j==0 || j==n-1))) {
						arr[i][j] = ' ';
					} else if (i==0 || i==n-1 || j==0 || j==n-1) {
						arr[i][j] = outer;
					} else if (j >= i && j < n - i) {
						arr[i][j] = m ? inner : outer;
					} else {
						arr[i][j] = arr[i-1][j];
					}
				}
				m = !m;
			}
			for(char[] t : arr) {
				for(char s : t) {
					System.out.print(s);
				}
				System.out.println();
			}
			for (int i = arr.length-2; i >= 0; i--) {
				for (int j = 0; j < n; j++) {
					System.out.print(arr[i][j]);
				}
				System.out.println();
			}
		}
	}

}
